2: COMMENT ⊗ VALID 00007 PAGES 3: RECORD PAGE DESCRIPTION 4: 00001 00001 5: 00002 00002 SUBTTL DATA AREA FOR INTERMINABLE MESSAGE PROTESTOR - JAM SEPT, '71 6: 00003 00003 MODEL DEVICE DATA BLOCK FOR IMP CONNECTIONS 7: 00005 00004 OUTPUT ROUTINE STORAGE 8: 00008 00005 STORAGE FOR CLOCK LEVEL WAIT ROUTINE 9: 00010 00006 HOST AND LINK TABLES 10: 00012 00007 THE FOLLOWING ARE COUNTERS OF THE NUMBER OF TIMES VARIOUS EVENTS HAVE HAPPENED 11: 00016 ENDMK 12: ⊗; 14: SUBTTL DATA AREA FOR INTERMINABLE MESSAGE PROTESTOR - JAM SEPT, '71 16: ; MODEL DEVICE DATA BLOCK FOR IMP CONNECTIONS 17: 18: DEFINE Z(NAME,VAL) <NAME←←.-DDBMDL ↔ VAL> 19: 20: DEVSHR,,0 ; DEVCMR 21: DDBMDL: SIXBIT /IMP/ 22: TDLEN+1 ; DEVCHR, BUFFER SIZE 23: 0 ; DEVIOS 24: LPTDDB,,IMPDSP ; DEVSER, UUO DISPATCH TABLE ADDRESS 25: DVIMP!DVLNG!DVIN!DVOUT,,154403 26: 0 ; DEVLOG 27: 0 ; DEVBUF 28: 0 ; DEVIAD 29: 0 ; DEVOAD 30: 0 ; DEVFIL 31: 0 ; DEVEXT 32: Z(INL,0) ; INPUT LIST 33: Z(MAL,0) ; MESSAGE ALLOCATION 34: Z(BAL,0) ; BIT ALLOCATION 35: Z(NHMA,0) ; NOMINAL MESSAGE ALLOCATION 36: Z(NHBA,0) ; NOMINAL BIT ALLOCATION 37: Z(NHMA2,0) ; 1/2 OF THE NOMINAL MESSAGE ALLOCATION 38: Z(NHBA2,0) ; 1/2 OF THE NOMINAL BIT ALLOCATION 39: Z(HMA,0) ; HIS MESSAGE ALLOCATION 40: Z(HBA,0) ; HIS BIT ALLOCATION 41: Z(MIIL,0) ; NUMBER OF MESSAGES IN INPUT LIST 42: Z(BIIL,0) ; NUMBER OF BITS IN INPUT LIST 43: Z(TIMES,<BYTE (6) 5,5,0,40,0>) 44: ; CLS, RFNM, ALL, RFC, INP WAIT TIMEOUTS 45: Z(TIM,-1) ; TIMEOUT COUNT 46: IMPDLN←←.-DDBMDL+1 47: 48: IMPDIE: 0 ; SET TO NON-ZERO TO KEEP IMP SYSTEM DOWN 49: 50: IMPST←←. ; NOTE IMP DATA AREA TO BE CLEARED BEGINS HERE 52: ; OUTPUT ROUTINE STORAGE 53: 54: IMPDEAD: 0 ; SET TO -1 IF IMP DECLARED DEAD 55: IMPOACT: 0 ; SET TO -1 IF OUTPUT IS ACTIVE 56: IMPOBK: 0 ; OUTPUT BLKO POINTER 57: IMPOCUR: 0 ; CURRENT BUFFER BEING OUTPUTTED 58: OLIST: 0 ; OUTPUT LIST. XWD <LAST ELEMENT>,<FIRST ELEMENT> 59: IMPOFC: 0 ; COUNT OF WDS TO GO IN 36B MODE 60: IMPOFM: 0 ; SET TO -1 FOR FULL WORD (36B) MODE 61: IMPOCT: 0 ; OUTPUT TIME-OUT COUNT 62: IMPOPD: 0 ; OUTPUT SIDE PUSHDOWN LIST 63: IMPOPL: BLOCK INTPLN 64: 65: ; INPUT ROUTINE STORAGE 66: 67: IMPBKO: 0 ; INPUT BLKI WORD 68: IMPICUR: 0 ; CURRENT INPUT BUFFER 69: IMPITOP: 0 ; TOP OF CURRENT INPUT LIST 70: ILIST: 0 ; INPUT LIST, XWD <LAST ELEMENT>,<FIRST ELEMENT> 71: IMPIFM: 0 ; -1 FOR 36B MODE, OTHERWISE, 32B MODE 72: IMPHELP: 0 ; IF NO BUFFER AVAILABLE AT I-LEVEL, INPUT WORD IS PLACED HERE 73: IMPHLF: 0 ; FLAG THAT SAYS WE ARE WAITING FOR AN INPUT BLOCK 74: IMPIHD: 0 ; SET TO -1 IF WORD IN IMPHELP IS LAST WORD IN MESSAGE 75: IMPSPARE: 0 ; SPARE INPUT BUFFER 76: IMPCLN: 0 ; SET TO -1 WHEN A CLOCK REQUEST FOR A NEW SPARE IS PLANTED 77: IMPINW: 0 ; NUMBER OF WORDS OF REGULAR MESSAGE 78: IMPIMS: 0 ; MASK FOR CLEANING OUT LAST WORD OF REGULAR MESSAGE 79: IMPIPD: 0 ; INPUT SIDE PUSHDOWN LIST 80: IMPIPL: BLOCK INTPLN 81: 82: ; I-LEVEL GENERAL STORAGE 83: ; IN IMPCHAN WE HAVE . . . 84: ; CONSZ IMP,IDONE!IEND 85: ; JRST IMPINT 86: ; CONSZ IMP,ODONE 87: ; JRST IMPOUT 88: ; CONSZ IMP,IMPERR 89: ; JRST IMPERB 90: 91: IMPAC1: 0 ; ACCUMULATOR STORAGE 92: IMPAC2: 0 93: IMPAC3: 0 94: IMPPID: P1PID 95: IMPIDSP: IBEGIN 96: IMPODSP: OBEGIN 97: IMPECT: 0 ; ERROR BIT COUNT DOWN 99: ; STORAGE FOR CLOCK LEVEL WAIT ROUTINE 100: 101: IMPCLW: 0 ; -1 MEANS WE ARE WAITING FOR FREE STORAGE 102: IMPPDP: 0 ; WHERE PUSHDOWN POINTER IS STORED WHILE WAITING 103: IMPFP: 0 ; THIS IS STACK AS IT LOOKS WHEN WE ENTER AT IMPCLK 104: IMPSAV: BLOCK CLKPLN 105: ; WHERE CLOCK LEVEL PUSHDOWN LIST IS STORED WHILE WAITING 106: 107: ; STORAGE FOR CLOCK COUNTING SYSTEM TIMEOUTS 108: 109: TIMCNT: 0 ; COUNT DOWN FOR CHECKING TIMED WAITS 110: TIMWAIT: 0 ; NUMBER OF PEOPLE WAITING FOR A TIMEOUT 111: 112: ; STORAGE FOR FREE STORAGE MANAGER 113: 114: IMPFSL: 0 ; FREE STORAGE LIST 115: IMPSPN: 0 ; COUNT OF NUMBER OF SPARE BLOCKS NEEDED 116: 117: ; STORAGE FOR POLLING ROUTINE 118: 119: POLTIM←←30*JIFSEC ; 60 MINUTES BETWEEN POLLS 120: POLCNT: POLTIM 121: 122: ; FOR CLEANUP ROUTINE (ACTUALLY PART OF POLLING ROUTINE) 123: 124: HCLSTM←←6 ; 3 MINUTES BETWEEN CLEANUPS 125: HCLSCT: 0 ; COUNTER FOR CLEANUPS 126: 127: ; OTHER STORAGE . . . 128: 129: RECOVER: 0 ; FLAG FOR ERROR RECOVERY SYSTEM 130: IMPPMS: 0 ; SET ≠ 0 TO PRINT ALL ERROR MESSAGES 131: RSTHST: 377 ; HOST TO BE RESET NEXT 132: 133: NOPCNT: 4 ;COUNT OF NOPS YET TO BE SENT TO IMP TO INITIALIZE 135: ; HOST AND LINK TABLES 136: 137: ; STORAGE FOR ROUTINE THAT ASSIGNS NEW AND UNIQUE LINKS 138: 139: LSTLNK: 0 ; LAST LINK NUMBER ASSIGNED 140: 141: ; HOST TABLES AND LINK TABLE 142: 143: L0WAIT: 0 ; COUNT OF NUMBER OF JOBS IN IO WAIT FOR LINK 0 TO BECOME UNBLOCKED 144: L0CWTL: 0 ; LIST OF MESSAGES INITIATED AT CLOCK LEVEL FOR LINK 0 145: SYSTBS←←. ; BEGINNING OF SYSTEM DATA TABLES 146: L0BLOK: BLOCK 10 ; BLOCKED-LINK-0 BIT FOR EACH HOST, 32. BITS PER WORD 147: 148: MAXNLK←←40 ; CURRENT MAXIMUM NUMBER OF CONNECTIONS 149: LNKMAX: MAXNLK ; FOR THE SYSTEM TABLE READERS 150: LNKTAB: BLOCK MAXNLK ; BITS 28-35 ARE LINK NUMBER, 20-27 ARE HOST NUMBER 151: IMPDDB: BLOCK MAXNLK ; CONTAINS ADDRESS OF DDB ON THIS CONNECTION 152: IMPLS: BLOCK MAXNLK ; LOCAL NUMBER 153: IMPFS: BLOCK MAXNLK ; FOREIGN SOCKET 154: IMPBS: BLOCK MAXNLK ; CONNECTION BYTE SIZE 155: IMPSTB: BLOCK MAXNLK ; STATUS BIT TABLE 156: IMPRFQ: BLOCK MAXNLK ; LIST OF RFCS WAITING FOR CONNECTION ON THIS SOCKET 157: FFLNK: 0 ; INDEX OF FIRST FREE LINK. 159: ; THE FOLLOWING ARE COUNTERS OF THE NUMBER OF TIMES VARIOUS EVENTS HAVE HAPPENED 160: 161: FRMIMP: 0 ; NUMBER OF MESSAGES FROM IMP 162: FLNOPS: 0 ; NUMBER OF NO-OPS RECEIVED 163: TRACES: 0 ; TRACE MESSAGES 164: ERWOMI: 0 ; ERRORS WITHOUT MASSAGE IDENTIFICATION 165: NIMPDN: 0 ; NUMBER OF IMP GOING DOWN MESSAGES 166: NBLNKS: 0 ; BLOCKED LINK 167: LTFULL: 0 ; LINK TABLE FULL 168: ERWMI: 0 ; ERROR WITH MASSAGE IDENTIFICATION 169: INCMTR: 0 ; INCOMPLETE TRANSMISSION 170: ILLMT: 0 ; ILLEGAL MESSAGE TYPE 171: BDRFNM: 0 ; RFNM RECEIVED ON AN UNBLOCKED LINK 172: NODDBS: 0 ; NO DDB WHEN ONE WAS CALLED FOR 173: UNKLNK: 0 ; NUMBER OF MESSAGES TO A NON-EX LINK 174: NRFNL: 0 ; NUMBER OF RFNMS WITH NO LINK IN LINK TABLE 175: NILLOP: 0 ; ILLEGAL SECOND LEVEL PROTOCAL OP CODE 176: BSILL: 0 ; BYTE SIZE FOR SECOND LEVEL COMMAND ILLEGAL 177: BCMM: 0 ; BYTE COUNT TOO SMALL FOR SECOND LEVEL COMMAND 178: RERRM: 0 ; NUMBER OF ERROR MESSAGE WE HAVE RECEIVED 179: SPRRP: 0 ; RESET REPLY WITH NO RESET GIVEN 180: N2RFCS: 0 ; NUMBER OF TIMES TWO RFCS FROM THE SAME HOST WERE RECEIVED 181: NNOCLS: 0 ; NUMBER OF TIMES NO CLOSE WAS SENT WHEN ONE WAS RECEIVED 182: NILLST: 0 ; NUMBER OF TIMES THE TABLES WERE IN AN ILLEGAL STATE 183: NNCOR: 0 ; NUMBER OF TIMES WE DIDN'T HAVE ANY FREE STORAGE AT UUO LEVEL 184: NNOCLW: 0 ; NUMBER OF TIMES WE DIDN'T ACKNOWLEDGE A CLS 185: NOLKS: 0 ; NUMBER OF TIMES WE COULDN'T ASSIGN A LINK NUMBER 186: NHOST0: 0 ; NUMBER OF TIMES WE GOT A MESSAGE FOR HOST ZERO 187: SLNOPS: 0 ; NUMBER OF SECOND LEVEL NO-OPS RECEIVED 188: NHANGS: 0 ; INPUT STOPPED DUE TO LACK OF FREE STORAGE 189: NDPBLK: 0 ; NUMBER OF TIMES WE TRIED TO STEAL F.S. FROM DPYSER 190: NSPSUS: 0 ; SPARE F.S. BLOCKS WE USED 191: NRSETS: 0 ; NUMBER OF RESETS WE HAVE RECEIVED 192: NMESIN: 0 ; MESSAGES RECEIVED 193: NMESOU: 0 ; MESSAGES SENT 194: NNOLNK: 0 ; WE RAN OUT OF TABLE SPACE 195: NSCLSS: 0 ; NUMBER OF UNSOLICITED CLSS WE RECEIVED 196: NOPADB: 0 ; NO PADDING BIT FOUND 197: OPTMO: 0 ; NUMBER OF TIMES THE INTERFACE TIMED OUT 198: IERBIT: 0 ; NUMBER OF TIMES THE IMP ERROR BIT CAME UP 199: SLUNLK: 0 ; SECOND-LEVEL UNKNOWN LINKS. 200: RWNOSS: 0 ; REGULAR MESSAGE WITH NO SEND OR RECEIVE SOCKET 201: NIWCNO: 0 ; NUMBER OF INPUTS (REGULAR MESSAGES) WITHOUT CONNECTION OPEN 202: NSSC: 0 ; NUMBER OF REGULAR MESSAGES FOR CLOSED SOCKET 203: NALWNC: 0 ; NUMBER OF ALLOCATES FOR UNCONNECTED LINK 204: 205: IMPEND←←. ; END OF AREA CLEARED AT INITIALIZE TIME